package work.hashmap;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @author WDH
 * @description
 * @date 2025年01月07日 17:10
 */

public class Problem242 {

    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        Map<Character, Integer> table = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            table.put(ch, table.getOrDefault(ch, 0) + 1);
        }
        for (int j = 0; j < t.length(); j++) {
            char ch = t.charAt(j);
            table.put(ch, table.getOrDefault(ch, 0) - 1);
            if (table.get(ch) < 0) {
                return false;
            }
        }
        return true;
    }


    public boolean isAnagram2(String s, String t) {
        HashMap<Character, Integer> map = new HashMap<>();
        char[] charArray = s.toCharArray();
        char[] charArray1 = t.toCharArray();
        for (char c : charArray) {
            Integer orDefault = map.getOrDefault(c, 0);
            orDefault--;
            map.put(c, orDefault);
        }
        for (char tt : charArray1) {
            Integer orDefault = map.getOrDefault(tt, 0);
            orDefault++;
            map.put(tt, orDefault);
        }

        for (Character key : map.keySet()) {
            if (map.get(key)!=0) return false;
        }
        return true;

    }
}
